
package VideoRent.Entrada;

import java.io.BufferedReader;
import java.io.IOException;

/**
 * Clase base para el manejo de datos introducidos por el usuario.
 */
public abstract class VideoRentEntrada
{


    /**
     * Toda clase debe tener un método para leer el buffer de la entrada
     * 
     * @param bufferLectura Buffer de entrada del usuario
     */
    public abstract void leer(BufferedReader bufferLectura)
        throws VideoRentEntradaException;

    /**
     * Para no tener que hacer try/catch en cada lectura de línea, aquí
     * se lanza una excepción del tipo apropiado si ocurren fallas.
     * 
     * @param bufferLectura Buffer de entrada del usuario del cual se quiere
     *                      la siguiente línea
     * 
     * @return String Siguiente línea del buffer. En caso de no haber más se
     *                devuelve null
     */
    protected String leerLinea(BufferedReader bufferLectura)
        throws VideoRentEntradaException
    {
        while (true){
            try{
                return bufferLectura.readLine();
            }catch(IOException e){
                throw new VideoRentEntradaException("Hubo un error de lectura del buffer: " + e.getMessage());
            }
        }
    }
}